package Lifevis::df_offsets;
use strict;

use base 'Exporter';

our @EXPORT = (qw( get_df_offsets ));

my @OFFSETS = (
    {
        version             => "v0.28.181.39a",
        PE                  => 0x487b4e8b,
        map_loc             => 0x01554028,
        x_count             => 0x01554040,
        y_count             => 0x01554044,
        z_count             => 0x01554048,
        pe_timestamp_offset => 0x00400108,
        type_off            => 0x0000005e,
        designation_off     => 0x00000260,
        occupancy_off       => 0x00000660,
        mouse_x             => 0x009d6284,
        mouse_y             => 0x009d6288,
        mouse_z             => 0x009d628c,
    },
    {
        version             => "v0.28.181.39b",
        PE                  => 0x487c9338,
        map_loc             => 0x01555028,
        x_count             => 0x01555040,
        y_count             => 0x01555044,
        z_count             => 0x01555048,
        pe_timestamp_offset => 0x00400108,
        type_off            => 0x0000005e,
        designation_off     => 0x00000260,
        occupancy_off       => 0x00000660,
        mouse_x             => 0x009d7284,
        mouse_y             => 0x009d7288,
        mouse_z             => 0x009d728c,
    },
    {
        version             => "v0.28.181.39c",
        PE                  => 0x487f2f30,
        map_loc             => 0x01555048,
        x_count             => 0x01555060,
        y_count             => 0x01555064,
        z_count             => 0x01555068,
        pe_timestamp_offset => 0x00400108,
        type_off            => 0x0000005e,
        designation_off     => 0x00000260,
        occupancy_off       => 0x00000660,
        mouse_x             => 0x009d7284,
        mouse_y             => 0x009d7288,
        mouse_z             => 0x009d728c,
    },
    {
        version             => "v0.28.181.39d",
        PE                  => 0x48873bc3,
        map_loc             => 0x01561470,
        x_count             => 0x01561488,
        y_count             => 0x0156148c,
        z_count             => 0x01561490,
        pe_timestamp_offset => 0x00400108,
        type_off            => 0x00000062,
        designation_off     => 0x00000264,
        occupancy_off       => 0x00000664,
        mouse_x             => 0x009e3284,
        mouse_y             => 0x009e3288,
        mouse_z             => 0x009e328c,
    },
    {
        version             => "v0.28.181.39e",
        PE                  => 0x4888672c,
        map_loc             => 0x01561470,
        x_count             => 0x01561488,
        y_count             => 0x0156148c,
        z_count             => 0x01561490,
        pe_timestamp_offset => 0x00400108,
        type_off            => 0x00000062,
        designation_off     => 0x00000264,
        occupancy_off       => 0x00000664,
        mouse_x             => 0x009e3284,
        mouse_y             => 0x009e3288,
        mouse_z             => 0x009e328c,
    },
    {
        version             => "v0.28.181.39f",
        PE                  => 0x489d8c7f,
        map_loc             => 0x015b7920,
        x_count             => 0x015b7938,
        y_count             => 0x015b793c,
        z_count             => 0x015b7940,
        pe_timestamp_offset => 0x004000f8,
        type_off            => 0x00000062,
        designation_off     => 0x00000264,
        occupancy_off       => 0x00000664,
        mouse_x             => 0x009ef294,
        mouse_y             => 0x009ef298,
        mouse_z             => 0x009ef29c,
    },
    {
        version             => "v0.28.181.40a",
        PE                  => 0x48a9727f,
        map_loc             => 0x015c3d60,
        x_count             => 0x015c3d78,
        y_count             => 0x015c3d7c,
        z_count             => 0x015c3d80,
        pe_timestamp_offset => 0x004000f8,
        type_off            => 0x00000062,
        designation_off     => 0x00000264,
        occupancy_off       => 0x00000664,
        mouse_x             => 0x009fb294,
        mouse_y             => 0x009fb298,
        mouse_z             => 0x009fb29c,
    },
    {
        version             => "v0.28.181.40b",
        PE                  => 0x48ad547a,
        map_loc             => 0x015c3d60,
        x_count             => 0x015c3d78,
        y_count             => 0x015c3d7c,
        z_count             => 0x015c3d80,
        pe_timestamp_offset => 0x004000f8,
        type_off            => 0x00000062,
        designation_off     => 0x00000264,
        occupancy_off       => 0x00000664,
        mouse_x             => 0x009fb294,
        mouse_y             => 0x009fb298,
        mouse_z             => 0x009fb29c,
    },
    {
        version             => "v0.28.181.40c",
        PE                  => 0x48ad802b,
        map_loc             => 0x015c3d60,
        x_count             => 0x015c3d78,
        y_count             => 0x015c3d7c,
        z_count             => 0x015c3d80,
        pe_timestamp_offset => 0x004000f8,
        type_off            => 0x00000062,
        designation_off     => 0x00000264,
        occupancy_off       => 0x00000664,
        mouse_x             => 0x009fb294,
        mouse_y             => 0x009fb298,
        mouse_z             => 0x009fb29c,
    },
    {
        version             => "v0.28.181.40d",
        PE                  => 0x48c330df,
        map_loc             => 0x015c4d58,
        x_count             => 0x015c4d70,
        y_count             => 0x015c4d74,
        z_count             => 0x015c4d78,
        pe_timestamp_offset => 0x004000f8,
        type_off            => 0x00000062,
        designation_off     => 0x00000264,
        occupancy_off       => 0x00000664,
        mouse_x             => 0x009fc294,
        mouse_y             => 0x009fc298,
        mouse_z             => 0x009fc29c,
        creature_vector     => 0x01583224,
        creature_race       => 0x8C,
        creature_x          => 0x94,
        creature_y          => 0x96,
        viewport_x          => 0x00D457F4,
        viewport_y          => 0x00D73868,
        viewport_z          => 0x00D73844,
        window_grid_x       => 0x01706D4C,
        window_grid_y       => 0x01706D50,
        menu_state          => 0x01393260,
        view_state          => 0x009FC368,
        building_vector     => 0x015838A0,
        item_vector         => 0x015832C8,
    },
);    # OFFSETS END HERE - DO NOT REMOVE THIS COMMENT

sub get_df_offsets {
    return @OFFSETS;
}

1;
